﻿using KinonekoSoftware.Expressions.Core;

namespace KinonekoSoftware.Expressions.Documents
{
    public class ImageSurroundingPointing : ExpressionBlockNode, IPicture
    {
        private string _source;
        private int    _originWidth;
        private int    _originHeight;
        private int    _actualWidth;
        private int    _actualHeight;
        
        public override ExpressionNode Generate()
        {
            return new ImageSurroundingPointing
            {
                Id = GetID(),
                Items = new List<ImageSurrounding>(),
            };
        }

        
        public int OriginHeight
        {
            get => _originHeight;
            set => SetValue(ref _originHeight, value);
        }
        
        public int OriginWidth
        {
            get => _originWidth;
            set => SetValue(ref _originWidth, value);
        }
        
        public string Source
        {
            get => _source;
            set => SetValue(ref _source, value);
        }
        
        
        public int ActualHeight
        {
            get => _actualHeight;
            set => SetValue(ref _actualHeight, value);
        }


        public int ActualWidth
        {
            get => _actualWidth;
            set => SetValue(ref _actualWidth, value);
        }
        
        /// <summary>
        /// 
        /// </summary>
        public required List<ImageSurrounding> Items { get; init; }
    }
}